<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>
// 选择排序
// 1.假设一个最小值和最小值的索引
// 2.依次比较找出真正的最小值和索引
// 3.假设的最小值和找出的最小值换位

var arr1 = [12,8,25,15,3,6];

/* var minValue = arr1[0];// 假设的最小值
var minIndex = 0;// 假设的最小值的索引
// 依次比较找出真正的最小值和索引
for (var i = 1; i < arr1.length; i++) {
    if (minValue > arr1[i]) {
        // 找出真正的最小值和索引
        minValue = arr1[i];
        minIndex = i;
    }
}
// 假设的最小值和找出的最小值换位
var tmp = arr1[0];
arr1[0] = minValue;
arr1[minIndex] = tmp;
console.log( arr1 );// [3, 8, 25, 15, 12, 6]

var minValue = arr1[1];// 假设的最小值
var minIndex = 1;// 假设的最小值的索引
// 依次比较找出真正的最小值和索引
for (var i = 2; i < arr1.length; i++) {
    if (minValue > arr1[i]) {
        // 找出真正的最小值和索引
        minValue = arr1[i];
        minIndex = i;
    }
}
// 假设的最小值和找出的最小值换位
var tmp = arr1[1];
arr1[1] = minValue;
arr1[minIndex] = tmp;
console.log( arr1 );// [3, 6, 25, 15, 12, 8]

var minValue = arr1[2];// 假设的最小值
var minIndex = 2;// 假设的最小值的索引
// 依次比较找出真正的最小值和索引
for (var i = 3; i < arr1.length; i++) {
    if (minValue > arr1[i]) {
        // 找出真正的最小值和索引
        minValue = arr1[i];
        minIndex = i;
    }
}
// 假设的最小值和找出的最小值换位
var tmp = arr1[2];
arr1[2] = minValue;
arr1[minIndex] = tmp;
console.log( arr1 );// [3, 6, 8, 15, 12, 25] */

function selectSort(arr){
    for (var n = 0; n < arr.length-1; n++){// 找最小值的次数

        var minValue = arr[n];// 假设的最小值
        var minIndex = n;// 假设的最小值的索引
        // 依次比较找出真正的最小值和索引
        for (var i = n+1; i < arr.length; i++) {
            if (minValue > arr[i]) {// 升序
            // if (minValue < arr1[i]) {// 降序
                // 找出真正的最小值和索引
                minValue = arr[i];
                minIndex = i;
            }
        }
        // 假设的最小值和找出的最小值换位
        var tmp = arr[n];
        arr[n] = minValue;
        arr[minIndex] = tmp;

    }
    return arr;
}

console.log( selectSort(arr1) );

</script>
</body>
</html>